package qcmPlus.dao;


import java.util.ArrayList;
import org.hibernate.Session;
import qcmPlus.beans.Utilisateur;
import qcmPlus.tools.Crypter;
import qcmPlus.tools.HibernateUtil;

public class UtilisateurDao {
	private String password;

	public Utilisateur getUtilisateur(int id) {
		Session s = HibernateUtil.currentSession();
		Utilisateur utilisateur = (Utilisateur) s.get(
				Utilisateur.class, id);
		HibernateUtil.closeSession();
		return utilisateur;
	}

	public ArrayList<Utilisateur> list() {
		Session s = HibernateUtil.currentSession();
		ArrayList<Utilisateur> utilisateurs = null;
		
		@SuppressWarnings("unchecked")
		ArrayList<Utilisateur> list = (ArrayList<Utilisateur>) s.createQuery("from Utilisateur ").list();
		utilisateurs = list;
		HibernateUtil.closeSession();
		return utilisateurs;
	}

  	
	public String insertion(String nom, String prenom, String email,
			String password, String societe, boolean estAdmin) {
		
		Session s = HibernateUtil.currentSession();
		
		password = Crypter.cryptage(password);
		Utilisateur utilisateur = new Utilisateur(nom, prenom, email, password, societe, estAdmin);
		s.save(utilisateur);
		HibernateUtil.closeSession();
		return "ok";
	}

	public String modification(Utilisateur utilisateur) {
		Session s = HibernateUtil.currentSession();
			s.update(utilisateur);
			HibernateUtil.closeSession();
			return "ok";
	}

	public String suppression(Utilisateur utilisateur) {
		Session s = HibernateUtil.currentSession();
		s.delete(utilisateur);
		HibernateUtil.closeSession();
		return "ok";
	}
	
	
	@SuppressWarnings("unchecked")
	public Utilisateur verification(String nom,String password) 
	{
		Session s = HibernateUtil.currentSession() ;
		
		String requete = "from Utilisateur where NOM='" + 
						  nom.toLowerCase() +
						  "' and PASSWORD='"+ 
						  password.toLowerCase() 
						  +"'";
		
		ArrayList<Utilisateur> listUtilisateur=null;
		Utilisateur u=null;
//		if (!password.equals("admin")){
//			password = Crypter.cryptage(password);
//		}
	    listUtilisateur=(ArrayList<Utilisateur>) s.createQuery(requete).list();
		if(listUtilisateur.size()>0)
		{
			u=listUtilisateur.get(0);
			HibernateUtil.closeSession();
		}
		
	   return u;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
		

}




